import axios from 'axios'
// import { AES } from './keyBodyAesRsa'
import { getToken } from './localStorage.js'
import { baseURL } from './myurl'

import router from '../router'
// 创建一个axios实例
const request = axios.create({
  headers: {
    'content-type': 'application/json;charset=UTF-8'
  },
  baseURL: baseURL(),
  withCredentials: true,
  timeout: 60000
})
// 添加请求拦截器
request.interceptors.request.use(config => {
  // 在发送请求之前做某事，比如说 设置token
  if (getToken()) {
    config.headers['CustomerToken'] = getToken()
  } else {
    config.headers['CustomerToken'] = ''
  }
  // if (process.env.NODE_ENV === 'development') console.log('原请求数据', config.data)
  // config.data = AES(config.data) // 加密数据
  // if (process.env.NODE_ENV === 'development') console.log('加密后请求数据', config.data)

  return config
}, error => {
  // 请求错误时做些事
  return Promise.reject(error)
})

// 添加响应拦截器
request.interceptors.response.use(response => {
  const res = response.data
  // 如果返回的状态不是200 就主动报错
  // eslint-disable-next-line
  if (response.status != 200) {
    console.log(response.status)
    return Promise.reject(res.message || 'error')
  }
  if (response.data === 'NOTLOGIN') {
    router.push('/login')
  }
  return response.data
}, error => {
  console.log(error)
  return Promise.reject(error) // 返回接口返回的错误信息
})

export default request
